﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace QLKS
{
    public partial class fDanhSachLoaiPhong : Form
    {
        private static fDanhSachLoaiPhong _instance;
        public static fDanhSachLoaiPhong Instance()
        {
            if (_instance == null || _instance.IsDisposed)
            {
                _instance = new fDanhSachLoaiPhong();
            }
            return _instance;
        }

        public fDanhSachLoaiPhong()
        {
            InitializeComponent();
            _timer1.Tick += new EventHandler(timer1_Tick);
            _timer1.Interval = 1000;
            _timer1.Enabled = true;
            _timer1.Start();
            _timer2.Tick += new EventHandler(timer2_Tick);
            _timer2.Interval = 1000;
            _timer2.Enabled = true;
            _timer2.Start();
        }

        Timer _timer1 = new Timer();//cập nhật tình trạng đăng nhập/đăng xuất
        Timer _timer2 = new Timer();//cập nhật liên tục danh sách phòng
        private bool _ktdangnhap;
        private int _ktcapnhat;

        /// <summary>
        /// Lấy danh sách loại phòng từ CSDL và hiển thị lên dataGridView1
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void fDanhSachLoaiPhong_Load(object sender, EventArgs e)
        {
            _ktdangnhap = MainForm.ktdangnhap;
            if (MainForm.ktdangnhap == false)
            {
                dataGridView1.Hide();
            }
            else
            {
                dataGridView1.Show();
                try
                {
                    LayDuLieu dl = new LayDuLieu();
                    DataSet ds = dl.LayBangDuLieu("SELECT LoaiPhong AS [Loại phòng], DonGia AS [Đơn giá] FROM LOAIPHONG");
                    dataGridView1.DataSource = ds.Tables[0];
                    _ktcapnhat = ds.Tables[0].Rows.Count;
                    KetNoi.NgatKetNoi();
                }
                catch { MessageBox.Show("Không tìm thấy cơ sở dữ liệu."); }
            }
        }

        /// <summary>
        /// Cập nhật tình trạng đăng nhập của người dùng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (MainForm.ktdangnhap != _ktdangnhap)
            {
                fDanhSachLoaiPhong_Load(sender, e);
            }
        }

        /// <summary>
        /// Cập nhật danh sách loại phòng, nếu có sự thêm hay xóa sẽ load lại danh sách loại phòng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void timer2_Tick(object sender, EventArgs e)
        {
            int temp = _ktcapnhat;
            try
            {
                LayDuLieu dl = new LayDuLieu();
                DataSet ds = dl.LayBangDuLieu("SELECT LoaiPhong From LOAIPHONG");
                _ktcapnhat = ds.Tables[0].Rows.Count;
                KetNoi.NgatKetNoi();
                if (temp != _ktcapnhat)
                {
                    fDanhSachLoaiPhong_Load(sender, e);
                }
            }
            catch { }
        }
    }
}
